<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); 

class Usuario extends CI_Model {
	
	/**
	 * @name 
	 * @param
	 * @param
	 * @return
	 * @see
	 * @since
	 * @author
	 */
	public function criar($aUsuario){
		$sSql = "
			INSERT INTO
				tb_usuario
			(
				login_usuario,
				senha_usuario,
				email_usuario,
				grupo_usuario,
				tb_ambiente_id_ambiente
			)
			VALUES (
				'{$aUsuario['login_usuario']}',
				'{$aUsuario['senha_usuario']}',
				'{$aUsuario['email_usuario']}',
				'{$aUsuario['grupo_usuario']}',
				{$aUsuario['id_ambiente']}
			)";
	
		return $this->db->query($sSql);
	}
	
	/**
	 * @name
	 * @param
	 * @param
	 * @return
	 * @see
	 * @since
	 * @author
	 */
	public function ler(){
		$sSql = "
			SELECT
				id_usuario,
				login_usuario,
				senha_usuario,
				email_usuario,
				grupo_usuario,
				qrcode_usuario
			FROM
				tb_usuario
			WHERE
				grupo_usuario != 'mesa'
		";
		
		$oResultado = $this->db->query($sSql);
		return $oResultado->result_array();
	}
	
	/**
	 * @name
	 * @param
	 * @param
	 * @return
	 * @see
	 * @since
	 * @author
	 */
	public function atualizar($aData){
		$sSql = "
		UPDATE
			tb_usuario
		SET
			senha_usuario = '{$aData['senha_usuario']}',
			email_usuario = '{$aData['email_usuario']}', 
			grupo_usuario = '{$aData['grupo_usuario']}'
		WHERE
			login_usuario = '{$aData['login_usuario']}'
		";
	
		return $this->db->query($sSql);
	}
	
	/**
	 * @name
	 * @param
	 * @param
	 * @return
	 * @see
	 * @since
	 * @author
	 */
	public function deletar($iIdUsuario){
		$sSql = "
    		DELETE
    		FROM
    			tb_usuario
    		WHERE
    			id_usuario = {$iIdUsuario};
    	";
		if ($this->db->query($sSql)) {
			return true;
		} else {
			return false;
		}
	}
	
	/**
	 * @name
	 * @param
	 * @param
	 * @return
	 * @see
	 * @since
	 * @author
	 */
	public function lerByLogin($sLogin) {
		$sSql = "
    		SELECT
				id_usuario,
    			login_usuario,
				grupo_usuario
    		FROM
    			tb_usuario
    		WHERE
    			login_usuario = '" . mysql_real_escape_string($sLogin) . "';
    	";
		$oResultado = $this->db->query($sSql);
		if ($oResultado->row()) {
			return $oResultado->row_array();
		} else {
			return false;
		}
	}
	
	/**
	 * @name
	 * @param
	 * @param
	 * @return
	 * @see
	 * @since
	 * @author
	 */
	public function lerById($iId) {
		$sSql = "
    		SELECT
				id_usuario,
				login_usuario,
				senha_usuario,
				email_usuario,
				grupo_usuario
			FROM
				tb_usuario
    		WHERE
    			id_usuario = {$iId}
    	";
		$oResultado = $this->db->query($sSql);
		if ($oResultado->row()) {
			return $oResultado->result();
		} else {
			return false;
		}
	}
	
	/**
	* @name loginUsuario()
	* @param $sLogin
	* @param $sSenha
	* @return void
	* @see Usuarios
	* @since 28/05/2013
	* @author Carlos Augusto Dugonski
	*/
	public function login($sLogin, $sSenha) {
		$oBcrypt = new Bcrypt();
    	$sSql = "
    		SELECT
    			id_usuario,
    			login_usuario,
    			senha_usuario,
    			email_usuario,
    			grupo_usuario,
    			qrcode_usuario
    		FROM
    			tb_usuario
    		WHERE
    			login_usuario = '" . mysql_real_escape_string($sLogin) . "';		
    	";
    	$oResultado = $this->db->query($sSql);
    	if ($oResultado = $oResultado->row()) {
    		if ($oResultado->grupo_usuario == 'mesa' && $oResultado->senha_usuario == 'aberta') {
    			return $oResultado;
    		}
    		else if ($oBcrypt->verify($sSenha, $oResultado->senha_usuario)){
    			return $oResultado;
    		} else {
    			return false;
    		}
    	} else {
    		return false;
    	}
	}
	
	
	/**
	 * @name
	 * @param
	 * @param
	 * @return
	 * @see
	 * @since
	 * @author
	 */
	public function statusMesa($sLogin){
		$sSql = "
    		SELECT
    			senha_usuario
    		FROM
    			tb_usuario
    		WHERE
    			login_usuario = '" . ($sLogin) . "'
    		AND
    			senha_usuario = 'aberta';
    	";
		$oResultado = $this->db->query($sSql);
		if ($oResultado->num_rows() > 0) {
			return 'aberta';
		} else {
			return 'fechada';
		}
	}
	
	/**
	 * @name
	 * @param
	 * @param
	 * @return
	 * @see
	 * @since
	 * @author
	 */
	public function ocuparMesa($sLogin, $sSenhaComanda){
		$sSql = "
    		UPDATE
    			tb_usuario
    		SET
    			senha_usuario = '{$sSenhaComanda}'
    		WHERE
    			login_usuario = '" . ($sLogin) . "'
    	";
		$oResultado = $this->db->query($sSql);
	}
	
	/**
	 * @name
	 * @param
	 * @param
	 * @return
	 * @see
	 * @since
	 * @author
	 */
	public function liberarMesa($sLogin){
		$sSql = "
			UPDATE
				tb_usuario
			SET
				senha_usuario = 'aberta'
			WHERE
				login_usuario = '{$sLogin}'
		";
		return $oResultado = $this->db->query($sSql);
	}
	
	/**
	 * @name
	 * @param
	 * @param
	 * @return
	 * @see
	 * @since
	 * @author
	 */
	public function logoutMesa($sLogin){
		$sSql = "
			DELETE FROM ci_sessions 
			WHERE 
				user_data 
			LIKE '%{$sLogin}%';
		";
		return $oResultado = $this->db->query($sSql);
	}
	
// 	private function carregarResultado($oResultado){
// 		if($oResultado->num_rows() > 0) {
// 			$aUsuario = array();
// 			foreach($oResultado->result_array() as $iIndice => $sLinha) {
// 				$aUsuario[$iIndice]['iIdUsuario']		=		$sLinha['id_usuario'];
// 				$aUsuario[$iIndice]['sLoginUsuario']	=		$sLinha['login_usuario'];
// 				$aUsuario[$iIndice]['sSenhaUsuario']	=		$sLinha['senha_usuario'];
// 				$aUsuario[$iIndice]['sEmailUsuario']	=		$sLinha['email_usuario'];
// 				$aUsuario[$iIndice]['sGrupoUsuario']	=		$sLinha['grupo_usuario'];
// 				$aUsuario[$iIndice]['sQrCodeUsuario']	=		$sLinha['qrcode_usuario'];
// 			};
// 			return $aUsuario;
			
// 		} else {
// 			return FALSE;
// 		}
// 	}
}

/* End of file Usuario.php */